#ifndef __SPHERE_H__
#define __SPHERE_H__

#include "BasicType/BasicType.h"

namespace GCRE {
	namespace SceneModel {
		/************************************************************************
		*                                        Sphere                                                        *
		************************************************************************/
		class Sphere {
			public:
				Sphere();
				Sphere( const Sphere& sphere );
				Sphere( const BasicType::SFVec3f& center, BasicType::SFFloat radius );

				Sphere& operator=( const Sphere& sphere );

				void SetCenter( const BasicType::SFVec3f& center );
				void SetRadius( BasicType::SFFloat radius );
				BasicType::SFVec3f GetCenter() const;
				BasicType::SFFloat GetRadius() const;

			protected:

			private:
				BasicType::SFVec3f m_Center;
				BasicType::SFFloat m_Radius;
		};

		inline BasicType::SFVec3f Sphere::GetCenter() const { return m_Center; }
		inline void Sphere::SetCenter( const BasicType::SFVec3f& center ) { m_Center = center; }
		inline BasicType::SFFloat Sphere::GetRadius() const { return m_Radius; }
		inline void Sphere::SetRadius( BasicType::SFFloat radius ) { m_Radius = radius; }

	}
}

#endif	//	__SPHERE_H__